﻿
#include "Engine/common.h"
#include "Engine/uimgr.h"
#include "Engine/ControlDef.h"
#include "strid.h"
#include "DNF定义.h"
#include "设置模块.h"
#include "AppUI.h"


//为了简化排版，进行以下规定
//标签+下拉列表构成一组，分为单列，双列，三列三种模式
//标签固定宽84，最多容纳6字，标签和下拉列表间隔固定10
//左右边距固定24，组之间留空36
//单列对应大号下拉列表，宽542（约容纳36字）
//双列对应中号下拉列表，宽206（约容纳12字）
//三列对应小号下拉列表，宽94（约容纳4字）
//文字宽度过大时，一律使用更大号模式，不再纠结字数问题
//选取合适的宽度即可，不再纠结排版是否对齐和紧凑
//控件高24，上下各5边距，每行总高34

//补正编辑框特殊处理，每行放4列，左右边距和组留空仍为24和36
//标签宽56，容纳4字，编辑框宽68，两者间隔8像素
//编辑框高22，但每行总高仍按34算

//有几个特殊控件，图标、CheckBox、滑动条，需获取NextY自行处理

const int 行宽=打造面板宽度;	//684
const int 行高=28;	//控件高24，上下空5

const int 行左右边距=24;
const int 组间距=36;

const int 列表标签宽度=84;	//6字
const int 列表标签间隔=10;
const int 列表大号宽度=行宽-列表标签宽度-列表标签间隔-行左右边距*2;
const int 列表中号宽度=(行宽-列表标签宽度*2-列表标签间隔*2-行左右边距*2-组间距)/2;
const int 列表小号宽度=(行宽-列表标签宽度*3-列表标签间隔*3-行左右边距*2-组间距*2)/3;

const int 编辑框标签宽度=56;	//4字
const int 编辑框标签间隔=8;
const int 编辑框宽度=(行宽-编辑框标签宽度*4-编辑框标签间隔*4-行左右边距*2-组间距*3)/4;

const int 标题高度=28;
const int 标题宽度=660;
const int 标题偏移X=(行宽-660)/2;

const int 控件高度=24;
const int 行间距=4;

static int NextX=0;
static int NextY=0;

CImage* Ctrl打造面板;
int 当前打造部位=上衣;

int 打造变更回调(UIControl* CtrlObj,UIEvent_t UIEvent,PVOID Param1,PVOID Param2);
void 一键强化(BOOL 一键增幅,int 强化数值);
void 切换打造部位(int 新部位);
void 加载辟邪玉设置(int Index,int CtrlIndex);
void 同步辟邪玉设置(int NewIndex,int CtrlIndex);
void 同步装备设置(int SettingIndex);	//UI角色详情区.cpp
int 获取装备图标ResId(int 部位,int 装备区索引,BOOL 灰色图标);	//UI装备区.cpp

void 换行()
{
	NextY+=行高;
	NextY+=行间距;
}

void 创建标题(int CtrlId,int ResId)
{
	NextY+=行间距*2;
	SetCreateControlParam(标题偏移X,NextY,Ctrl打造面板,PageId_Setting);
	CImage* Ctrl打造块标题=EasyCreateImage(CtrlId,标题宽度,标题高度,ResId);
	NextY+=标题高度;
	NextY+=行间距*2;
}

//先定义DropList的CtrlId，再留出足够多的Label的CtrlId位置，数量为 CID_打造_控件结束-CID_打造_控件开始
//可通过DropList的CtrlId直接计算出对应的Label的CtrlId
#define 标签ID(CtrlId)	(CtrlId+(CID_打造_控件结束-CID_打造_控件开始))

CDropList* 创建单列控件组(WCHAR* Name,int SettingIndex,int CtrlId)
{
	int 标签X=行左右边距;
	int 下拉列表X=行左右边距+列表标签宽度+列表标签间隔;
	SetCreateControlParam(标签X,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CLineLabel* Ctrl标签=EasyCreateLineLabel(标签ID(CtrlId),列表标签宽度,控件高度,Name);
	SetCreateControlParam(下拉列表X,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CDropList* Ctrl下拉列表=EasyCreateDropList(CtrlId,列表大号宽度,FALSE);
	Ctrl下拉列表->SetUserData((PVOID)SettingIndex);
	Ctrl下拉列表->SetEventHandler(打造变更回调);
	return Ctrl下拉列表;
}

CDropList* 创建双列控件组(WCHAR* Name,int SettingIndex,int CtrlId,int ColumnIndex)
{
	int 标签X=行左右边距+(列表标签宽度+列表标签间隔+列表中号宽度+组间距)*ColumnIndex;
	int 下拉列表X=标签X+列表标签宽度+列表标签间隔;
	SetCreateControlParam(标签X,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CLineLabel* Ctrl标签=EasyCreateLineLabel(标签ID(CtrlId),列表标签宽度,控件高度,Name);
	SetCreateControlParam(下拉列表X,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CDropList* Ctrl下拉列表=EasyCreateDropList(CtrlId,列表中号宽度,FALSE);
	Ctrl下拉列表->SetUserData((PVOID)SettingIndex);
	Ctrl下拉列表->SetEventHandler(打造变更回调);
	return Ctrl下拉列表;
}

CDropList* 创建三列控件组(WCHAR* Name,int SettingIndex,int CtrlId,int ColumnIndex)
{
	int 标签X=行左右边距+(列表标签宽度+列表标签间隔+列表小号宽度+组间距)*ColumnIndex;
	int 下拉列表X=标签X+列表标签宽度+列表标签间隔;
	SetCreateControlParam(标签X,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CLineLabel* Ctrl标签=EasyCreateLineLabel(标签ID(CtrlId),列表标签宽度,控件高度,Name);
	SetCreateControlParam(下拉列表X,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CDropList* Ctrl下拉列表=EasyCreateDropList(CtrlId,列表小号宽度,FALSE);
	Ctrl下拉列表->SetUserData((PVOID)SettingIndex);
	Ctrl下拉列表->SetEventHandler(打造变更回调);
	return Ctrl下拉列表;
}

CEdit* 创建补正编辑框(WCHAR* Name,int SettingIndex,int CtrlId,int ColumnIndex)
{
	int 标签X=行左右边距+(编辑框标签宽度+编辑框标签间隔+编辑框宽度+组间距)*ColumnIndex;
	int 编辑框X=标签X+编辑框标签宽度+编辑框标签间隔;
	SetCreateControlParam(标签X,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CLineLabel* Ctrl标签=EasyCreateLineLabel(标签ID(CtrlId),编辑框标签宽度,控件高度,Name);
	//编辑框高22
	SetCreateControlParam(编辑框X,NextY+(行高-22)/2,Ctrl打造面板,PageId_Setting);
	CEdit* Ctrl编辑框=EasyCreateEdit(CtrlId,编辑框宽度);
	Ctrl编辑框->SetUserData((PVOID)SettingIndex);
	Ctrl编辑框->SetEventHandler(打造变更回调);
	return Ctrl编辑框;
}

template<typename T>
void 设置控件组可见性(int CtrlId,BOOL Visible)
{
	T* Ctrl=EasyFindControl<T>(PageId_Setting,CtrlId);
	Ctrl->Visible=Visible;
	CLineLabel* Ctrl标签=EasyFindControl<CLineLabel>(PageId_Setting,标签ID(CtrlId));
	Ctrl标签->Visible=Visible;
}

/*
排版预计如下：
----
DropList60 一键强化80 一键增幅80
----
装备标题
----
当前部位 标签 图标28
强化类型 DropList小 强化等级 DropList小 锻造等级 DropList小
附魔 DropList大
徽章1 DropList大
徽章2 DropList大
{融合升级开关 CheckBox} | {武器星团等级 DropList小 武器梦境等级 DropList小 武器记忆等级 DropList小}
----
装扮标题
----
武器装扮 DropList大
徽章1 DropList大
徽章2 DropList大
皮肤 DropList大
徽章1 DropList大
徽章2 DropList大
光环 DropList大
徽章1 DropList大
徽章2 DropList大
装扮头部 DropList中 装扮属性 DropList中
装扮帽子 DropList中 装扮属性 DropList中 
装扮脸部 DropList中 装扮属性 DropList中
装扮胸部 DropList中 装扮属性 DropList中 
装扮上衣 DropList中 装扮属性 DropList中
装扮下装 DropList中 装扮属性 DropList中 
装扮腰部 DropList中 装扮属性 DropList中
装扮鞋子 DropList中 装扮属性 DropList中 
----
辟邪玉标题
----
辟邪玉词条1 DropList大
标签 Slider大
辟邪玉词条2 DropList大
标签 Slider大
辟邪玉词条3 DropList大
标签 Slider大
辟邪玉词条4 DropList大
标签 Slider大
----
杂项标题
----
星辰百变数量 DropList小 
副武器状态 DropList中 副武器强化 DropList中
红色宠物装备 DropList大
蓝色宠物装备 DropList大
绿色宠物装备 DropList大
快捷栏装备 DropList大
勋章品质 DropList中 勋章强化 DropList中
守护珠1品质 DropList中 守护珠2品质 DropList中 
守护珠3品质 DropList中 守护珠4品质 DropList中
冒险团等级 DropList中 公会属性 DropList中
训练官属性1 DropList中 训练官属性2 DropList中
婚房属性 DropList中  婚戒属性 DropList中
无色契约 DropList中  名称装饰卡 DropList中
收集箱类型 DropList中
收集箱稀有数 DropList中 收集箱神器数 DropList中
----
补正标题（补正全为Edit）
----
辅助力智  辅助三攻 辅助技攻
四维  三攻 技攻
攻击强化 攻强增幅
火强 冰强 光强 暗强
火抗 冰抗 光抗 暗抗
出血抗性 中毒抗性 灼伤抗性 感电抗性
冰冻抗性 减速抗性 眩晕抗性 诅咒抗性
失明抗性 石化抗性 睡眠抗性 混乱抗性
束缚抗性
攻速 技能范围 MP消耗量
----
*/





void 详细构建_打造面板(int PageId,CImage* Ctrl打造面板)
{
	::Ctrl打造面板=Ctrl打造面板;
	NextX=0;
	NextY=0;

	//顶部的一键打造
	SetCreateControlParam(行左右边距,24,Ctrl打造面板,PageId_Setting);
	CDropList* Ctrl一键打造列表=EasyCreateDropList(CID_打造_一键打造列表,60,FALSE);
	for (int i=0;i<21;i++)
	{
		WCHAR Buf[10];
		swprintf(Buf,L"%d",i);
		Ctrl一键打造列表->AppendItem(Buf);
	}
	Ctrl一键打造列表->SetSelect(10);

	SetCreateControlParam(行左右边距+60+10,24,Ctrl打造面板,PageId_Setting);
	CButton* Ctrl一键强化=EasyCreateFlatButton(CID_打造_一键强化按钮,80,控件高度,L"一键强化");
	Ctrl一键强化->SetFlatColor(2);
	Ctrl一键强化->SetEventHandler([](UIControl* CtrlObj,UIEvent_t UIEvent,PVOID Param1,PVOID Param2)->int
	{
		CDropList* Ctrl一键打造列表=EasyFindControl<CDropList>(PageId_Setting,CID_打造_一键打造列表);
		一键强化(FALSE,Ctrl一键打造列表->GetSelect());
		return 0;
	});

	SetCreateControlParam(行左右边距+60+10+80+10,24,Ctrl打造面板,PageId_Setting);
	CButton* Ctrl一键增幅=EasyCreateFlatButton(CID_打造_一键增幅按钮,80,控件高度,L"一键增幅");
	Ctrl一键增幅->SetFlatColor(1);
	Ctrl一键增幅->SetEventHandler([](UIControl* CtrlObj,UIEvent_t UIEvent,PVOID Param1,PVOID Param2)->int
	{
		CDropList* Ctrl一键打造列表=EasyFindControl<CDropList>(PageId_Setting,CID_打造_一键打造列表);
		一键强化(TRUE,Ctrl一键打造列表->GetSelect());
		return 0;
	});

	//特别提示标签
	SetCreateControlParam(行宽/2,24,Ctrl打造面板,PageId_Setting);
	CLineLabel* Ctrl使用提示标签=EasyCreateLineLabel(CID_打造_使用提示标签,行宽/2-24,控件高度,L"点击角色详情面板的装备图标可切换打造部位");
	Ctrl使用提示标签->SetTextColor(0xFFFF0000);

	//////////////////////////////////////////////////////////////////////////
	NextY=60;
	//当前打造部位默认上衣，部位改变时，此区域的控件都需要修改（特别是关联的设置项）
	创建标题(CID_打造_标题_装备设置,RID_打造标题_装备设置);

	//当前打造部位
	NextX=行左右边距;
	SetCreateControlParam(NextX,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CLineLabel* Ctrl当前部位描述标签=EasyCreateLineLabel(标签ID(CID_打造_当前部位图标),列表标签宽度,控件高度,L"当前部位");
	NextX=行左右边距+列表标签宽度+列表标签间隔;
	SetCreateControlParam(NextX,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
	CLineLabel* Ctrl当前部位标签=EasyCreateLineLabel(CID_打造_当前部位标签,56,控件高度,装备部位文本[上衣]);
	NextX=行左右边距+列表标签宽度+列表标签间隔+56+8;
	SetCreateControlParam(NextX,NextY+(行高-28)/2,Ctrl打造面板,PageId_Setting);
	CImage* Ctrl当前部位图标=EasyCreateImage(CID_打造_当前部位图标,28,28);
	换行();

	创建三列控件组(L"强化类型",设置_上衣强化类型+上衣,CID_打造_强化类型,0);
	创建三列控件组(L"强化等级",设置_上衣强化等级+上衣,CID_打造_强化等级,1);
	创建三列控件组(L"锻造等级",设置_武器锻造等级,CID_打造_锻造等级,2);	//武器专属
	换行();

	创建单列控件组(L"附魔",设置_上衣附魔+上衣,CID_打造_附魔);
	换行();

	//徽章2为防具和首饰专属
	创建单列控件组(L"徽章1",设置_上衣徽章1+上衣,CID_打造_徽章1);
	换行();
	创建单列控件组(L"徽章2",设置_上衣徽章2+上衣,CID_打造_徽章2);
	换行();

	//武器专属
	创建三列控件组(L"武器星团等级",设置_武器星团等级,CID_打造_武器星团等级,0);
	创建三列控件组(L"武器梦境等级",设置_武器梦境等级,CID_打造_武器梦境等级,1);
	创建三列控件组(L"武器记忆等级",设置_武器记忆等级,CID_打造_武器记忆等级,2);
	//项链特殊装备专属
	NextX=行左右边距;
	SetCreateControlParam(NextX,NextY+(行高-20)/2,Ctrl打造面板,PageId_Setting);
	CCheckBox* Ctrl融合升级=EasyCreateCheckBox(CID_打造_融合升级开关,L"融合石升级");
	Ctrl融合升级->SetTextColor(0xFF000000);
	Ctrl融合升级->SetUserData((PVOID)-1);
	Ctrl融合升级->SetEventHandler(打造变更回调);
	换行();

	//////////////////////////////////////////////////////////////////////////
	创建标题(CID_打造_标题_装扮设置,RID_打造标题_装扮设置);

	创建单列控件组(L"武器装扮",设置_武器装扮,CID_打造_武器装扮);
	换行();
	创建单列控件组(L"徽章1",设置_武器装扮徽章1,CID_打造_武器装扮徽章1);
	换行();
	创建单列控件组(L"徽章2",设置_武器装扮徽章2,CID_打造_武器装扮徽章2);
	换行();

	创建单列控件组(L"皮肤",设置_皮肤,CID_打造_皮肤);
	换行();
	创建单列控件组(L"徽章2",设置_皮肤徽章1,CID_打造_皮肤徽章1);
	换行();
	创建单列控件组(L"徽章2",设置_皮肤徽章2,CID_打造_皮肤徽章2);
	换行();

	创建单列控件组(L"光环",设置_光环,CID_打造_光环);
	换行();
	创建单列控件组(L"徽章2",设置_光环徽章1,CID_打造_光环徽章1);
	换行();
	创建单列控件组(L"徽章2",设置_光环徽章2,CID_打造_光环徽章2);
	换行();

	WCHAR* 装扮描述[8]={
		L"装扮头部",L"装扮帽子",L"装扮脸部",L"装扮胸部",
		L"装扮上衣",L"装扮下装",L"装扮腰部",L"装扮鞋子",
	};
	for (int i=0;i<8;i++)
	{
		创建双列控件组(装扮描述[i],设置_装扮头部品质+i,CID_打造_装扮品质+i,0);
		创建双列控件组(L"装扮属性",设置_装扮头部属性+i,CID_打造_装扮属性+i,1);
		换行();
	}

	//////////////////////////////////////////////////////////////////////////
	创建标题(CID_打造_标题_辟邪玉设置,RID_打造标题_辟邪玉设置);

	WCHAR* 辟邪玉描述[4]=
	{
		L"辟邪玉词条1",L"辟邪玉词条2",L"辟邪玉词条3",L"辟邪玉词条4",
	};
	for (int i=0;i<4;i++)
	{
		创建单列控件组(辟邪玉描述[i],设置_辟邪玉词条1+i,CID_打造_辟邪玉词条1+i);
		换行();
		NextX=行左右边距;
		SetCreateControlParam(NextX,NextY+(行高-控件高度)/2,Ctrl打造面板,PageId_Setting);
		EasyCreateLineLabel(CID_打造_辟邪玉词条1属性标签+i,列表标签宽度,控件高度,L"0.0%");
		NextX=行左右边距+列表标签宽度+列表标签间隔;
		SetCreateControlParam(NextX,NextY+(行高-15)/2,Ctrl打造面板,PageId_Setting);
		CHSlider* Ctrl辟邪玉滑块=EasyCreateSlider(CID_打造_辟邪玉词条1属性滑块+i,列表大号宽度);
		Ctrl辟邪玉滑块->SetUserData((PVOID)(设置_辟邪玉词条1属性+i));	//含义和范围根据[设置_辟邪玉词条]解释
		Ctrl辟邪玉滑块->SetEventHandler(打造变更回调);
		换行();
	}

	//////////////////////////////////////////////////////////////////////////
	创建标题(CID_打造_标题_杂项设置,RID_打造标题_杂项设置);

	创建三列控件组(L"星辰百变数量",设置_星辰百变数量,CID_打造_星辰百变数量,0);
	换行();

	创建双列控件组(L"副武器状态",设置_副武器状态,CID_打造_副武器状态,0);
	创建双列控件组(L"副武器强化",设置_副武器强化,CID_打造_副武器强化,1);
	换行();

	创建单列控件组(L"红色宠物装备",设置_红色宠物装备,CID_打造_红色宠物装备);
	换行();
	创建单列控件组(L"蓝色宠物装备",设置_蓝色宠物装备,CID_打造_蓝色宠物装备);
	换行();
	创建单列控件组(L"绿色宠物装备",设置_绿色宠物装备,CID_打造_绿色宠物装备);
	换行();
	创建单列控件组(L"快捷栏装备",设置_快捷栏装备,CID_打造_快捷栏装备);
	换行();

	创建双列控件组(L"勋章品质",设置_勋章品质,CID_打造_勋章品质,0);
	创建双列控件组(L"勋章强化",设置_勋章强化,CID_打造_勋章强化,1);
	换行();
	创建双列控件组(L"守护珠1品质",设置_守护珠1品质,CID_打造_守护珠1品质,0);
	创建双列控件组(L"守护珠2品质",设置_守护珠2品质,CID_打造_守护珠2品质,1);
	换行();
	创建双列控件组(L"守护珠3品质",设置_守护珠3品质,CID_打造_守护珠3品质,0);
	创建双列控件组(L"守护珠4品质",设置_守护珠4品质,CID_打造_守护珠4品质,1);
	换行();

	创建双列控件组(L"冒险团等级",设置_冒险团等级,CID_打造_冒险团等级,0);
	创建双列控件组(L"公会属性",设置_公会属性,CID_打造_公会属性,1);
	换行();

	创建双列控件组(L"训练官属性1",设置_公会训练官属性1,CID_打造_训练官属性1,0);
	创建双列控件组(L"训练官属性2",设置_公会训练官属性2,CID_打造_训练官属性2,1);
	换行();

	创建双列控件组(L"婚房属性",设置_婚房属性,CID_打造_婚房属性,0);
	创建双列控件组(L"婚戒属性",设置_婚戒属性,CID_打造_婚戒属性,1);
	换行();

	创建双列控件组(L"晶体契约",设置_晶体契约,CID_打造_晶体契约,0);
	创建双列控件组(L"名称装饰卡",设置_名称装饰卡,CID_打造_名称装饰卡,1);
	换行();

	创建双列控件组(L"收集箱类型",设置_收集箱类型,CID_打造_收集箱类型,0);
	换行();
	创建双列控件组(L"收集箱稀有数",设置_收集箱稀有数量,CID_打造_收集箱稀有个数,0);
	创建双列控件组(L"收集箱神器数",设置_收集箱神器数量,CID_打造_收集箱神器个数,1);
	换行();

	//////////////////////////////////////////////////////////////////////////
	创建标题(CID_打造_标题_补正设置,RID_打造标题_补正设置);

	创建补正编辑框(L"辅助力智",设置_辅助力智加成,CID_打造_辅助力智加成,0);
	创建补正编辑框(L"辅助三攻",设置_辅助三攻加成,CID_打造_辅助三攻加成,1);
	创建补正编辑框(L"辅助技攻",设置_辅助技攻加成,CID_打造_辅助技攻加成,2);
	换行();

	创建补正编辑框(L"四维",设置_四维补正,CID_打造_四维补正,0);
	创建补正编辑框(L"三攻",设置_三攻补正,CID_打造_三攻补正,1);
	创建补正编辑框(L"技攻",设置_技攻补正,CID_打造_技攻补正,2);
	换行();

	创建补正编辑框(L"攻击强化",设置_攻击强化补正,CID_打造_攻击强化补正,0);
	创建补正编辑框(L"攻强增幅",设置_攻击强化增幅补正,CID_打造_攻击强化增幅补正,1);
	换行();

	创建补正编辑框(L"火强",设置_火强补正,CID_打造_火强补正,0);
	创建补正编辑框(L"冰强",设置_冰强补正,CID_打造_冰强补正,1);
	创建补正编辑框(L"光强",设置_光强补正,CID_打造_光强补正,2);
	创建补正编辑框(L"暗强",设置_暗强补正,CID_打造_暗强补正,3);
	换行();

	创建补正编辑框(L"火抗",设置_火抗补正,CID_打造_火抗补正,0);
	创建补正编辑框(L"冰抗",设置_冰抗补正,CID_打造_冰抗补正,1);
	创建补正编辑框(L"光抗",设置_光抗补正,CID_打造_光抗补正,2);
	创建补正编辑框(L"暗抗",设置_暗抗补正,CID_打造_暗抗补正,3);
	换行();

	WCHAR* 异常抗性补正描述[13]=
	{
		L"出血抗性",L"中毒抗性",L"灼伤抗性",L"感电抗性",
		L"冰冻抗性",L"减速抗性",L"眩晕抗性",L"诅咒抗性",
		L"失明抗性",L"石化抗性",L"睡眠抗性",L"混乱抗性",
		L"束缚抗性",
	};
	for (int i=0;i<13;i++)
	{
		创建补正编辑框(异常抗性补正描述[i],设置_异常状态1补正+i,CID_打造_异常状态补正+i,i%4);
		if (i%4==3 || i==12)
			换行();
	}

	创建补正编辑框(L"攻速",设置_攻速补正,CID_打造_攻速补正,0);
	创建补正编辑框(L"技能范围",设置_技能范围补正,CID_打造_技能范围补正,1);
	创建补正编辑框(L"MP消耗量",设置_MP消耗量补正,CID_打造_MP消耗量补正,2);
}


void 重置设置_打造面板()
{
	UI_AdjustState++;

	//装备部位区的这4个框是固定的，不受部位改变影响
	ResetDropList(设置_武器锻造等级,CID_打造_锻造等级,PageId_Setting);
	ResetDropList(设置_武器星团等级,CID_打造_武器星团等级,PageId_Setting);
	ResetDropList(设置_武器梦境等级,CID_打造_武器梦境等级,PageId_Setting);
	ResetDropList(设置_武器记忆等级,CID_打造_武器记忆等级,PageId_Setting);

	//每次重置都默认是上衣
	切换打造部位(上衣);

	for (int i=0;i<8;i++)
	{
		ResetDropList(设置_装扮头部品质+i,CID_打造_装扮品质+i,PageId_Setting);
		ResetDropList(设置_装扮头部属性+i,CID_打造_装扮属性+i,PageId_Setting);
	}

	ResetDropList(设置_武器装扮,CID_打造_武器装扮,PageId_Setting);
	ResetDropList(设置_武器装扮徽章1,CID_打造_武器装扮徽章1,PageId_Setting);
	ResetDropList(设置_武器装扮徽章2,CID_打造_武器装扮徽章2,PageId_Setting);

	ResetDropList(设置_皮肤,CID_打造_皮肤,PageId_Setting);
	ResetDropList(设置_皮肤徽章1,CID_打造_皮肤徽章1,PageId_Setting);
	ResetDropList(设置_皮肤徽章2,CID_打造_皮肤徽章2,PageId_Setting);

	ResetDropList(设置_光环,CID_打造_光环,PageId_Setting);
	ResetDropList(设置_光环徽章1,CID_打造_光环徽章1,PageId_Setting);
	ResetDropList(设置_光环徽章2,CID_打造_光环徽章2,PageId_Setting);

	for (int i=0;i<4;i++)
	{
		ResetDropList(设置_辟邪玉词条1+i,CID_打造_辟邪玉词条1+i,PageId_Setting);
		int Index=GetIndexSetting(设置_辟邪玉词条1+i);
		同步辟邪玉设置(Index,i);
	}

	ResetDropList(设置_星辰百变数量,CID_打造_星辰百变数量,PageId_Setting);

	ResetDropList(设置_红色宠物装备,CID_打造_红色宠物装备,PageId_Setting);
	ResetDropList(设置_蓝色宠物装备,CID_打造_蓝色宠物装备,PageId_Setting);
	ResetDropList(设置_绿色宠物装备,CID_打造_绿色宠物装备,PageId_Setting);
	ResetDropList(设置_快捷栏装备,CID_打造_快捷栏装备,PageId_Setting);

	ResetDropList(设置_勋章品质,CID_打造_勋章品质,PageId_Setting);
	ResetDropList(设置_勋章强化,CID_打造_勋章强化,PageId_Setting);
	ResetDropList(设置_守护珠1品质,CID_打造_守护珠1品质,PageId_Setting);
	ResetDropList(设置_守护珠2品质,CID_打造_守护珠2品质,PageId_Setting);
	ResetDropList(设置_守护珠3品质,CID_打造_守护珠3品质,PageId_Setting);
	ResetDropList(设置_守护珠4品质,CID_打造_守护珠4品质,PageId_Setting);

	ResetDropList(设置_冒险团等级,CID_打造_冒险团等级,PageId_Setting);
	ResetDropList(设置_公会属性,CID_打造_公会属性,PageId_Setting);
	ResetDropList(设置_公会训练官属性1,CID_打造_训练官属性1,PageId_Setting);
	ResetDropList(设置_公会训练官属性2,CID_打造_训练官属性2,PageId_Setting);

	ResetDropList(设置_婚房属性,CID_打造_婚房属性,PageId_Setting);
	ResetDropList(设置_婚戒属性,CID_打造_婚戒属性,PageId_Setting);
	ResetDropList(设置_晶体契约,CID_打造_晶体契约,PageId_Setting);
	ResetDropList(设置_名称装饰卡,CID_打造_名称装饰卡,PageId_Setting);

	ResetDropList(设置_收集箱类型,CID_打造_收集箱类型,PageId_Setting);
	ResetDropList(设置_收集箱稀有数量,CID_打造_收集箱稀有个数,PageId_Setting);
	ResetDropList(设置_收集箱神器数量,CID_打造_收集箱神器个数,PageId_Setting);

	int 补正项数量=设置_MP消耗量补正-设置_辅助力智加成+1;
	for (int i=0;i<补正项数量;i++)
		ResetEdit(设置_辅助力智加成+i,CID_打造_辅助力智加成+i,PageId_Setting);	//百分比类型的项自动乘100

	UI_AdjustState--;
}

void 退出清理_打造面板()
{

}

void 同步辟邪玉设置(int Index,int CtrlIndex)
{
	UI_AdjustState++;
	CHSlider* Ctrl滑块=EasyFindControl<CHSlider>(PageId_Setting,CID_打造_辟邪玉词条1属性滑块+CtrlIndex);
	CLineLabel* Ctrl数值=EasyFindControl<CLineLabel>(PageId_Setting,CID_打造_辟邪玉词条1属性标签+CtrlIndex);
	if (Index==辟邪玉_无 || (Index>=辟邪玉_10_15技能 && Index<=辟邪玉_二次觉醒技能))
	{
		//对于无词条和等级词条，隐藏标签和滑块
		Ctrl滑块->SetVisible(FALSE);
		Ctrl数值->SetVisible(FALSE);
	}
	else if (Index==辟邪玉_技能伤害增加)
	{
		float Value=GetValueSetting(设置_辟邪玉词条1属性+CtrlIndex);
		//对于技攻词条，显示标签和滑块，范围-6.0~6.0
		Ctrl滑块->SetVisible(TRUE);
		Ctrl数值->SetVisible(TRUE);
		Ctrl滑块->SetRange(-6.0f,6.0f,0.1f);
		Ctrl滑块->SetValue(Value);
		WCHAR Buf[10];
		swprintf(Buf,L"%.1f%%",Value);
		Ctrl数值->SetText(Buf);
	}
	else
	{
		float Value=GetValueSetting(设置_辟邪玉词条1属性+CtrlIndex);
		//对于其他词条，显示标签和滑块，范围-5.0~5.0
		Ctrl滑块->SetVisible(TRUE);
		Ctrl数值->SetVisible(TRUE);
		Ctrl滑块->SetRange(-5.0f,5.0f,0.1f);
		Ctrl滑块->SetValue(Value);
		WCHAR Buf[10];
		swprintf(Buf,L"%.1f%%",Value);
		Ctrl数值->SetText(Buf);
	}
	UI_AdjustState--;
}

void 切换辟邪玉词条(int NewIndex,int CtrlIndex)
{
	//切换词条由辟邪玉词条DropList的EvtSelectChange发起
	//这里直接修改设置，不触发Slider的EvtSliderChange
	//最后由发起者执行SubmitSettingChange()，一并更新
	UI_AdjustState++;

	int Index=GetIndexSetting(设置_辟邪玉词条1+CtrlIndex);
	if (Index==NewIndex)
		return ;
	CHSlider* Ctrl滑块=EasyFindControl<CHSlider>(PageId_Setting,CID_打造_辟邪玉词条1属性滑块+CtrlIndex);
	CLineLabel* Ctrl数值=EasyFindControl<CLineLabel>(PageId_Setting,CID_打造_辟邪玉词条1属性标签+CtrlIndex);

	if (NewIndex==辟邪玉_无)
	{
		//对于无词条，隐藏标签和滑块，数值设为0
		Ctrl滑块->SetVisible(FALSE);
		Ctrl数值->SetVisible(FALSE);
		ChangeSettingByUI_Value(设置_辟邪玉词条1属性+CtrlIndex,0.0f);
	}
	else if (NewIndex>=辟邪玉_10_15技能 && NewIndex<=辟邪玉_二次觉醒技能)
	{
		//对于等级词条，隐藏标签和滑块，数值设为1
		//其实可以不隐藏，设置范围0~1，但是没有意义，标签展示的数字还需要特别处理
		Ctrl滑块->SetVisible(FALSE);
		Ctrl数值->SetVisible(FALSE);
		ChangeSettingByUI_Value(设置_辟邪玉词条1属性+CtrlIndex,1.0f);
	}
	else if (NewIndex==辟邪玉_技能伤害增加)
	{
		//todo：这里可以有一点优化，如果上个词条的类型是范围型，可以沿用上次的设置
		//对于技攻词条，显示标签和滑块，数值设为6.0
		Ctrl滑块->SetVisible(TRUE);
		Ctrl数值->SetVisible(TRUE);
		Ctrl滑块->SetRange(-6.0f,6.0f,0.1f);
		Ctrl滑块->SetValue(6.0f);
		Ctrl数值->SetText(L"6.0%");
		ChangeSettingByUI_Value(设置_辟邪玉词条1属性+CtrlIndex,6.0f);	
	}
	else
	{
		//todo：这里可以有一点优化，如果上个词条的类型是范围型，可以沿用上次的设置（超过5.0使用最大值）
		//对于其他词条，显示标签和滑块，数值设为5.0
		Ctrl滑块->SetVisible(TRUE);
		Ctrl数值->SetVisible(TRUE);
		Ctrl滑块->SetRange(-5.0f,5.0f,0.1f);
		Ctrl滑块->SetValue(5.0f);
		Ctrl数值->SetText(L"5.0%");
		ChangeSettingByUI_Value(设置_辟邪玉词条1属性+CtrlIndex,5.0f);
	}

	UI_AdjustState--;
}

void 一键强化(BOOL 一键增幅,int 强化数值)
{
	UI_AdjustState++;
	//同步当前打造部位UI
	CDropList* Ctrl强化类型=EasyFindControl<CDropList>(PageId_Setting,CID_打造_强化类型);
	Ctrl强化类型->SetSelect(一键增幅);
	CDropList* Ctrl强化等级=EasyFindControl<CDropList>(PageId_Setting,CID_打造_强化等级);
	Ctrl强化等级->SetSelect(强化数值);

	//同步角色详情面板的强化数字（2个页面）
	for (int i=CID_角色面板上衣强化;i<=CID_角色面板武器强化;i++)
	{
		CImage* Ctrl角色详情强化1=EasyFindControl<CImage>(PageId_Setting,i);
		CImage* Ctrl角色详情强化2=EasyFindControl<CImage>(PageId_DamageDetail,i);
		if (!一键增幅)
		{
			Ctrl角色详情强化1->SetImage(EasyLoadImageR(RID_强化数字+强化数值));
			Ctrl角色详情强化2->SetImage(EasyLoadImageR(RID_强化数字+强化数值));
		}
		else
		{
			Ctrl角色详情强化1->SetImage(EasyLoadImageR(RID_增幅数字+强化数值));
			Ctrl角色详情强化2->SetImage(EasyLoadImageR(RID_增幅数字+强化数值));
		}
	}

	//修改设置并提交
	for (int i=设置_上衣强化类型;i<=设置_武器强化类型;i++)
		ChangeSettingByUI_Index(i,一键增幅);
	for (int i=设置_上衣强化等级;i<=设置_武器强化等级;i++)
		ChangeSettingByUI_Index(i,强化数值);
	//执行计算，更新UI
	SubmitSettingChange();

	UI_AdjustState--;
}


void 同步打造部位图标(int 部位,int 装备区索引)
{
	if (部位==当前打造部位)
	{
		CImage* Ctrl当前部位图标=EasyFindControl<CImage>(PageId_Setting,CID_打造_当前部位图标);
		int ResId=获取装备图标ResId(部位,装备区索引,FALSE);
		Ctrl当前部位图标->SetImage(EasyLoadImageR(ResId,GetIconType(ResId)));
	}
}

void 切换打造部位(int 新部位)
{
	UI_AdjustState++;

	当前打造部位=新部位;
	
	//当前部位标签
	CLineLabel* Ctrl当前部位标签=EasyFindControl<CLineLabel>(PageId_Setting,CID_打造_当前部位标签);
	Ctrl当前部位标签->SetText(装备部位文本[当前打造部位]);
	//当前部位图标
	同步打造部位图标(当前打造部位,GetIndexSetting(设置_上衣+当前打造部位));

	CDropList* Ctrl强化类型=EasyFindControl<CDropList>(PageId_Setting,CID_打造_强化类型);
	CDropList* Ctrl强化等级=EasyFindControl<CDropList>(PageId_Setting,CID_打造_强化等级);
	CDropList* Ctrl锻造等级=EasyFindControl<CDropList>(PageId_Setting,CID_打造_锻造等级);
	CDropList* Ctrl附魔=EasyFindControl<CDropList>(PageId_Setting,CID_打造_附魔);
	CDropList* Ctrl徽章1=EasyFindControl<CDropList>(PageId_Setting,CID_打造_徽章1);
	CDropList* Ctrl徽章2=EasyFindControl<CDropList>(PageId_Setting,CID_打造_徽章2);
	CDropList* Ctrl武器星团等级=EasyFindControl<CDropList>(PageId_Setting,CID_打造_武器星团等级);
	CDropList* Ctrl武器梦境等级=EasyFindControl<CDropList>(PageId_Setting,CID_打造_武器梦境等级);
	CDropList* Ctrl武器记忆等级=EasyFindControl<CDropList>(PageId_Setting,CID_打造_武器记忆等级);
	CCheckBox* Ctrl融合升级=EasyFindControl<CCheckBox>(PageId_Setting,CID_打造_融合升级开关);
	Ctrl强化类型->SetUserData((PVOID)-1);
	设置控件组可见性<CDropList>(CID_打造_强化类型,FALSE);
	Ctrl强化等级->SetUserData((PVOID)-1);
	设置控件组可见性<CDropList>(CID_打造_强化等级,FALSE);
	Ctrl附魔->SetUserData((PVOID)-1);
	设置控件组可见性<CDropList>(CID_打造_附魔,FALSE);
	Ctrl徽章1->SetUserData((PVOID)-1);
	设置控件组可见性<CDropList>(CID_打造_徽章1,FALSE);
	Ctrl徽章2->SetUserData((PVOID)-1);
	设置控件组可见性<CDropList>(CID_打造_徽章2,FALSE);
	Ctrl融合升级->SetUserData((PVOID)-1);
	Ctrl融合升级->SetVisible(FALSE);
	//这4个控件是固定的，SettingIndex和下拉列表内容不会变
	设置控件组可见性<CDropList>(CID_打造_锻造等级,FALSE);
	设置控件组可见性<CDropList>(CID_打造_武器星团等级,FALSE);
	设置控件组可见性<CDropList>(CID_打造_武器梦境等级,FALSE);
	设置控件组可见性<CDropList>(CID_打造_武器记忆等级,FALSE);

	if (当前打造部位>=上衣 && 当前打造部位<=鞋子)
	{
		//强化类型 强化等级
		//附魔
		//徽章1
		//徽章2
		Ctrl强化类型->SetUserData((PVOID)(设置_上衣强化类型+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_强化类型,TRUE);
		ResetDropList(设置_上衣强化类型+当前打造部位,CID_打造_强化类型,PageId_Setting);

		Ctrl强化等级->SetUserData((PVOID)(设置_上衣强化等级+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_强化等级,TRUE);
		ResetDropList(设置_上衣强化等级+当前打造部位,CID_打造_强化等级,PageId_Setting);

		Ctrl附魔->SetUserData((PVOID)(设置_上衣附魔+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_附魔,TRUE);
		ResetDropList(设置_上衣附魔+当前打造部位,CID_打造_附魔,PageId_Setting);

		Ctrl徽章1->SetUserData((PVOID)(设置_上衣徽章1+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_徽章1,TRUE);
		ResetDropList(设置_上衣徽章1+当前打造部位,CID_打造_徽章1,PageId_Setting);

		Ctrl徽章2->SetUserData((PVOID)(设置_上衣徽章2+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_徽章2,TRUE);
		ResetDropList(设置_上衣徽章2+当前打造部位,CID_打造_徽章2,PageId_Setting);
	}
	else if (当前打造部位>=手镯 && 当前打造部位<=戒指)
	{
		//强化类型 强化等级
		//附魔
		//徽章1
		//徽章2
		//启用融合石升级
		Ctrl强化类型->SetUserData((PVOID)(设置_上衣强化类型+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_强化类型,TRUE);
		ResetDropList(设置_上衣强化类型+当前打造部位,CID_打造_强化类型,PageId_Setting);

		Ctrl强化等级->SetUserData((PVOID)(设置_上衣强化等级+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_强化等级,TRUE);
		ResetDropList(设置_上衣强化等级+当前打造部位,CID_打造_强化等级,PageId_Setting);

		Ctrl附魔->SetUserData((PVOID)(设置_上衣附魔+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_附魔,TRUE);
		ResetDropList(设置_上衣附魔+当前打造部位,CID_打造_附魔,PageId_Setting);

		Ctrl徽章1->SetUserData((PVOID)(设置_上衣徽章1+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_徽章1,TRUE);
		ResetDropList(设置_上衣徽章1+当前打造部位,CID_打造_徽章1,PageId_Setting);

		Ctrl徽章2->SetUserData((PVOID)(设置_上衣徽章2+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_徽章2,TRUE);
		ResetDropList(设置_上衣徽章2+当前打造部位,CID_打造_徽章2,PageId_Setting);

		Ctrl融合升级->SetUserData((PVOID)(设置_手镯融合升级+(当前打造部位-手镯)));
		Ctrl融合升级->SetVisible(TRUE);
		ResetCheckBox(设置_手镯融合升级+(当前打造部位-手镯),CID_打造_融合升级开关,PageId_Setting);
	}
	else if (当前打造部位>=左槽 && 当前打造部位<=耳环)
	{
		if (当前打造部位==耳环)
		{
			//强化类型 强化等级
			//附魔
			//启用融合石升级
			Ctrl强化类型->SetUserData((PVOID)(设置_上衣强化类型+当前打造部位));
			设置控件组可见性<CDropList>(CID_打造_强化类型,TRUE);
			ResetDropList(设置_上衣强化类型+当前打造部位,CID_打造_强化类型,PageId_Setting);

			Ctrl强化等级->SetUserData((PVOID)(设置_上衣强化等级+当前打造部位));
			设置控件组可见性<CDropList>(CID_打造_强化等级,TRUE);
			ResetDropList(设置_上衣强化等级+当前打造部位,CID_打造_强化等级,PageId_Setting);

			Ctrl附魔->SetUserData((PVOID)(设置_上衣附魔+当前打造部位));
			设置控件组可见性<CDropList>(CID_打造_附魔,TRUE);
			ResetDropList(设置_上衣附魔+当前打造部位,CID_打造_附魔,PageId_Setting);

			Ctrl融合升级->SetUserData((PVOID)(设置_手镯融合升级+(当前打造部位-手镯)));
			Ctrl融合升级->SetVisible(TRUE);
			ResetCheckBox(设置_手镯融合升级+(当前打造部位-手镯),CID_打造_融合升级开关,PageId_Setting);
		}
		else
		{
			//强化类型 强化等级
			//附魔
			//徽章1
			//启用融合石升级
			Ctrl强化类型->SetUserData((PVOID)(设置_上衣强化类型+当前打造部位));
			设置控件组可见性<CDropList>(CID_打造_强化类型,TRUE);
			ResetDropList(设置_上衣强化类型+当前打造部位,CID_打造_强化类型,PageId_Setting);

			Ctrl强化等级->SetUserData((PVOID)(设置_上衣强化等级+当前打造部位));
			设置控件组可见性<CDropList>(CID_打造_强化等级,TRUE);
			ResetDropList(设置_上衣强化等级+当前打造部位,CID_打造_强化等级,PageId_Setting);

			Ctrl附魔->SetUserData((PVOID)(设置_上衣附魔+当前打造部位));
			设置控件组可见性<CDropList>(CID_打造_附魔,TRUE);
			ResetDropList(设置_上衣附魔+当前打造部位,CID_打造_附魔,PageId_Setting);

			Ctrl徽章1->SetUserData((PVOID)(设置_上衣徽章1+当前打造部位));
			设置控件组可见性<CDropList>(CID_打造_徽章1,TRUE);
			ResetDropList(设置_上衣徽章1+当前打造部位,CID_打造_徽章1,PageId_Setting);

			Ctrl融合升级->SetUserData((PVOID)(设置_手镯融合升级+(当前打造部位-手镯)));
			Ctrl融合升级->SetVisible(TRUE);
			ResetCheckBox(设置_手镯融合升级+(当前打造部位-手镯),CID_打造_融合升级开关,PageId_Setting);
		}
	}
	else if (当前打造部位==武器)
	{
		//强化类型 强化等级 锻造等级
		//附魔
		//雾神武器选项1 雾神武器选项2 雾神武器选项3
		Ctrl强化类型->SetUserData((PVOID)(设置_上衣强化类型+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_强化类型,TRUE);
		ResetDropList(设置_上衣强化类型+当前打造部位,CID_打造_强化类型,PageId_Setting);

		Ctrl强化等级->SetUserData((PVOID)(设置_上衣强化等级+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_强化等级,TRUE);
		ResetDropList(设置_上衣强化等级+当前打造部位,CID_打造_强化等级,PageId_Setting);

		Ctrl附魔->SetUserData((PVOID)(设置_上衣附魔+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_附魔,TRUE);
		ResetDropList(设置_上衣附魔+当前打造部位,CID_打造_附魔,PageId_Setting);

		设置控件组可见性<CDropList>(CID_打造_锻造等级,TRUE);
		设置控件组可见性<CDropList>(CID_打造_武器星团等级,TRUE);
		设置控件组可见性<CDropList>(CID_打造_武器梦境等级,TRUE);
		设置控件组可见性<CDropList>(CID_打造_武器记忆等级,TRUE);
	}
	else if (当前打造部位==称号 || 当前打造部位==宠物)
	{
		//附魔
		Ctrl附魔->SetUserData((PVOID)(设置_上衣附魔+当前打造部位));
		设置控件组可见性<CDropList>(CID_打造_附魔,TRUE);
		ResetDropList(设置_上衣附魔+当前打造部位,CID_打造_附魔,PageId_Setting);
	}

	UI_AdjustState--;
}

int 打造变更回调(UIControl* CtrlObj,UIEvent_t UIEvent,PVOID Param1,PVOID Param2)
{
	if (UI_AdjustState!=0)
		return 0;

	int SettingIndex=(int)CtrlObj->GetUserData();
	if (UIEvent==EvtCheckBoxChange)
	{
		int SelIndex=(int)Param1;	//CheckBox的是否选择对应Index的1和0
		ChangeSettingByUI_Index(SettingIndex,SelIndex);
		SubmitSettingChange();
	}
	else if (UIEvent==EvtSelectChange)
	{
		int SelIndex=(int)Param1;
		//辟邪玉使用不同的UI，根据不同的词条类型，解释为不同的属性含义
		if (SettingIndex>=设置_辟邪玉词条1 && SettingIndex<=设置_辟邪玉词条4)
			切换辟邪玉词条(SelIndex,SettingIndex-设置_辟邪玉词条1);
		ChangeSettingByUI_Index(SettingIndex,SelIndex);
		SubmitSettingChange();
		//强化类型、强化等级、锻造等级、徽章发生变动后，需同步到角色详情面板
		if ((SettingIndex>=设置_上衣强化类型 && SettingIndex<=设置_武器锻造等级) ||
			(SettingIndex>=设置_上衣徽章1 && SettingIndex<=设置_戒指徽章2))
			同步装备设置(SettingIndex);
	}
	else if (UIEvent==EvtSliderChange)
	{
		//无词条和等级词条会隐藏滑块，不会产生事件，这里不做判断
		float Value=(int)Param1*0.001f;
		int CtrlIndex=SettingIndex-设置_辟邪玉词条1属性;
		CLineLabel* Ctrl数值=EasyFindControl<CLineLabel>(PageId_Setting,CID_打造_辟邪玉词条1属性标签+CtrlIndex);
		WCHAR Buf[10];
		swprintf(Buf,L"%.1f%%",Value);
		Ctrl数值->SetText(Buf);
		ChangeSettingByUI_Value(SettingIndex,Value);
		SubmitSettingChange();
	}
	else if (UIEvent==EvtEditChange)
	{
		WCHAR* Text=(WCHAR*)Param1;
		int Len=(int)Param2;
		//三攻、四维、属强、属抗是整数，其余值是百分比，正负皆可
		if (SettingIndex==设置_辅助力智加成 || SettingIndex==设置_辅助三攻加成 || SettingIndex==设置_四维补正 || SettingIndex==设置_三攻补正 ||
			(SettingIndex>=设置_火强补正 && SettingIndex<=设置_暗抗补正))
		{
			UI_AdjustState++;
			float Value=EditChangeAdjust((CEdit*)CtrlObj,Text,Len,-1,FALSE);
			UI_AdjustState--;
			ChangeSettingByUI_Value(SettingIndex,Value);
		}
		else
		{
			//百分比类型的保留2位小数
			UI_AdjustState++;
			float Value=EditChangeAdjust((CEdit*)CtrlObj,Text,Len,2,FALSE);
			UI_AdjustState--;
			ChangeSettingByUI_Value(SettingIndex,Value);
		}
		SubmitSettingChange();
	}
	return 0;
}




